package com.jwsoft.manager.core.dao.model;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 幼儿园报名历史表
 *
 * @author zhiyuan
 * @since 2023-10-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("eduh_student_enroll_kindergarten")
@Schema(name = "EduhStudentEnrollKindergarten", title = "幼儿园报名历史表", description = "幼儿园报名历史表实体类")
public class EduhStudentEnrollKindergarten extends Model<EduhStudentEnrollKindergarten> {

    private static final long serialVersionUID = 1L;

    @Schema(name = "formDetailId", description = "表单提交明细id")
    @TableId(value = "form_detail_id", type = IdType.ASSIGN_ID)
    private String formDetailId;

    @Schema(name = "taskDetailId", description = "任务详情id")
    @TableField(value = "task_detail_id")
    private String taskDetailId;

    @Schema(name = "formId", description = "表单id")
    @TableField(value = "form_id")
    private String formId;

    @Schema(name = "schoolId", description = "学校id")
    @TableField(value = "school_id")
    private String schoolId;

    @Schema(name = "applyId", description = "报名编号")
    @TableField(value = "apply_id")
    private Long applyId;

    @Schema(name = "configName", description = "配置名称")
    @TableField(value = "config_name")
    private String configName;

    @Schema(name = "configType", description = "学段")
    @TableField(value = "config_type")
    private String configType;

    @Schema(name = "admitFlag", description = "录取状态")
    @TableField(value = "admit_flag")
    private String admitFlag;

    @Schema(name = "admitTime", description = "录取时间")
    @TableField(value = "admit_time")
    private Date admitTime;

    @Schema(name = "admitRemarks", description = "录取意见")
    @TableField(value = "admit_remarks")
    private String admitRemarks;

    @Schema(name = "childFullName", description = "幼儿姓名")
    @TableField(value = "child_full_name")
    private String childFullName;

    @Schema(name = "childCardType", description = "证件类型")
    @TableField(value = "child_card_type")
    private String childCardType;

    @Schema(name = "birthYmd", description = "出生日期")
    @TableField(value = "birth_ymd")
    private String birthYmd;

    @Schema(name = "sex", description = "性别")
    @TableField(value = "sex")
    private String sex;

    @Schema(name = "childIdcard", description = "幼儿身份证")
    @TableField(value = "child_idcard")
    private String childIdcard;

    @Schema(name = "childShortName", description = "幼儿小名")
    @TableField(value = "child_short_name")
    private String childShortName;

    @Schema(name = "householdPlace", description = "户籍地")
    @TableField(value = "household_place")
    private String householdPlace;

    @Schema(name = "address", description = "居住地")
    @TableField(value = "address")
    private String address;

    @Schema(name = "fatherName", description = "父亲姓名")
    @TableField(value = "father_name")
    private String fatherName;

    @Schema(name = "fatherCardType", description = "父亲（监护人）证件类型")
    @TableField(value = "father_card_type")
    private String fatherCardType;

    @Schema(name = "fatherIdcard", description = "父亲身份证")
    @TableField(value = "father_idcard")
    private String fatherIdcard;

    @Schema(name = "fatherWork", description = "父亲工作单位")
    @TableField(value = "father_work")
    private String fatherWork;

    @Schema(name = "fatherPhone", description = "父亲手机号")
    @TableField(value = "father_phone")
    private String fatherPhone;

    @Schema(name = "motherName", description = "母亲姓名")
    @TableField(value = "mother_name")
    private String motherName;

    @Schema(name = "motherCardType", description = "母亲证件类型")
    @TableField(value = "mother_card_type")
    private String motherCardType;

    @Schema(name = "motherIdcard", description = "母亲身份证")
    @TableField(value = "mother_idcard")
    private String motherIdcard;

    @Schema(name = "motherWork", description = "母亲工作单位")
    @TableField(value = "mother_work")
    private String motherWork;

    @Schema(name = "motherPhone", description = "母亲手机号")
    @TableField(value = "mother_phone")
    private String motherPhone;

    @Schema(name = "householdPhoto", description = "户口本")
    @TableField(value = "household_photo")
    private String householdPhoto;

    @Schema(name = "param1", description = "自定义字段1")
    @TableField(value = "param1")
    private String param1;

    @Schema(name = "param2", description = "自定义字段2")
    @TableField(value = "param2")
    private String param2;

    @Schema(name = "param3", description = "自定义字段3")
    @TableField(value = "param3")
    private String param3;

    @Schema(name = "param4", description = "自定义字段4")
    @TableField(value = "param4")
    private String param4;

    @Schema(name = "param5", description = "自定义字段5")
    @TableField(value = "param5")
    private String param5;

    @Schema(name = "param6", description = "自定义字段6")
    @TableField(value = "param6")
    private String param6;

    @Schema(name = "param7", description = "自定义字段7")
    @TableField(value = "param7")
    private String param7;

    @Schema(name = "param8", description = "自定义字段8")
    @TableField(value = "param8")
    private String param8;

    @Schema(name = "param9", description = "自定义字段9")
    @TableField(value = "param9")
    private String param9;

    @Schema(name = "param10", description = "自定义字段10")
    @TableField(value = "param10")
    private String param10;

    @Schema(name = "param11", description = "自定义字段11")
    @TableField(value = "param11")
    private String param11;

    @Schema(name = "param12", description = "自定义字段12")
    @TableField(value = "param12")
    private String param12;

    @Schema(name = "param13", description = "自定义字段13")
    @TableField(value = "param13")
    private String param13;

    @Schema(name = "param14", description = "自定义字段14")
    @TableField(value = "param14")
    private String param14;

    @Schema(name = "param15", description = "自定义字段15")
    @TableField(value = "param15")
    private String param15;

    @Schema(name = "param16", description = "自定义字段16")
    @TableField(value = "param16")
    private String param16;

    @Schema(name = "param17", description = "自定义字段17")
    @TableField(value = "param17")
    private String param17;

    @Schema(name = "param18", description = "自定义字段18")
    @TableField(value = "param18")
    private String param18;

    @Schema(name = "param19", description = "自定义字段19")
    @TableField(value = "param19")
    private String param19;

    @Schema(name = "param20", description = "自定义字段20")
    @TableField(value = "param20")
    private String param20;

    @Schema(name = "year", description = "招生年度")
    @TableField(value = "year")
    private Integer year;

    @Schema(name = "enrollStatus", description = "报名状态：0，待审核 1，待录取 2，已录取 3,业务不录取 4,系统不录取")
    @TableField(value = "enroll_status")
    private String enrollStatus;

    @Schema(name = "authStatus", description = "审核状态")
    @TableField(value = "auth_status")
    private String authStatus;

    @Schema(name = "authRemarks", description = "审核意见")
    @TableField(value = "auth_remarks")
    private String authRemarks;

    @Schema(name = "authTime", description = "审核时间")
    @TableField(value = "auth_time")
    private Date authTime;

    @Schema(name = "specialFlag", description = "特殊人员标识、针对学校录入的")
    @TableField(value = "special_flag")
    private String specialFlag;

    @Schema(name = "houseSyncFlag", description = "房产同步状态")
    @TableField(value = "house_sync_flag")
    private String houseSyncFlag;

    @Schema(name = "houseSyncRemark", description = "房产同步备注")
    @TableField(value = "house_sync_remark")
    private String houseSyncRemark;

    @Schema(name = "householdSyncFlag", description = "户籍同步状态")
    @TableField(value = "household_sync_flag")
    private String householdSyncFlag;

    @Schema(name = "householdSyncRemark", description = "户籍同步备注")
    @TableField(value = "household_sync_remark")
    private String householdSyncRemark;

    @Schema(name = "areaCode", description = "所属行政区")
    @TableField(value = "area_code")
    private String areaCode;

    @Schema(name = "del", description = "0,未删除,1,已删除")
    @TableField(value = "del", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    @TableLogic
    private String del;

    @Schema(name = "createName", description = "创建人")
    @TableField(value = "create_name", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private String createName;

    @Schema(name = "createTime", description = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private Date createTime;

    @Schema(name = "updateName", description = "修改人")
    @TableField(value = "update_name", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private String updateName;

    @Schema(name = "updateTime", description = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private Date updateTime;

    @Schema(name = "source", description = "来源(1,一键报名,2,特殊渠道录入)")
    @TableField(value = "source")
    private String source;

    @Schema(name = "followFlag", description = "是否长幼随学 0 否 1 是")
    @TableField(value = "follow_flag")
    private String followFlag;

    @Schema(name = "followIdcard", description = "随学的兄/姐身份证号码")
    @TableField(value = "follow_idcard")
    private String followIdcard;

    @Schema(name = "followFullName", description = "随学的兄/姐姓名")
    @TableField(value = "follow_full_name")
    private String followFullName;

    @Schema(name = "followType", description = "随学的需求类型：1 本校就读 2 随兄组到调剂学校入学")
    @TableField(value = "follow_type")
    private String followType;

    @Schema(name = "followSchoolId", description = "随学的学校id")
    @TableField(value = "follow_school_id")
    private String followSchoolId;

    @Schema(name = "followSchoolName", description = "随学的学校名称")
    @TableField(value = "follow_school_name")
    private String followSchoolName;

    @Schema(name = "followSchoolClass", description = "随学的学校年级班级")
    @TableField(value = "follow_school_class")
    private String followSchoolClass;

    @Schema(name = "bindFlag", description = "是否捆绑摇号  0 否 1 是")
    @TableField(value = "bind_flag")
    private String bindFlag;

    @Schema(name = "bindIdcard", description = "捆绑的身份证号码")
    @TableField(value = "bind_idcard")
    private String bindIdcard;

    @Schema(name = "bindMianFlag", description = "是否主摇号信息  0 否 1 是")
    @TableField(value = "bind_mian_flag")
    private String bindMianFlag;

    @Schema(name = "serialNum", description = "摇号序号")
    @TableField(value = "serial_num")
    private Integer serialNum;

    @Schema(name = "encryptStatus", description = "加密状态 0待加密  1加密成功  2加密失败")
    @TableField(value = "encrypt_status")
    private String encryptStatus;

    @Schema(name = "encryptRemarks", description = "加密备注")
    @TableField(value = "encrypt_remarks")
    private String encryptRemarks;

    @Schema(name = "encryptTime", description = "加密时间")
    @TableField(value = "encrypt_time")
    private Date encryptTime;

    @Schema(name = "encryptFlag", description = "是否已加密  1是  0否")
    @TableField(value = "encrypt_flag")
    private String encryptFlag;

    @Schema(name = "cleanFlag", description = "是否销毁 1是 0 否")
    @TableField(value = "clean_flag")
    private String cleanFlag;

    @Override
    public Serializable pkVal() {
        return this.formDetailId;
    }
}
